IN = 'in'
OUT = 'out'
IN_OUT = 'in_out'
OUT_POLICY_ONE = 'out_policy_one'
OUT_POLICY_TWO = 'out_policy_two'

#     b: blue
# 　　g: green
# 　　r: red
# 　　c: cyan         荧光色
# 　　m: magenta
# 　　y: yellow
# 　　k: black
# 　　w: white
COLOR_PARK = 'y'  # 停车位 - 无车            黄色
COLORT_OCCUPIED = 'g'  # 停车位 - 有车        绿色
COLOR_FLATCAR_CAR = 'r'  # 小车 - 有车       红色
COLOR_FLATCAR = 'm'  # 小车 - 无车           棕红色
COLOR_TRAJECTORY = 'b'  # 经过的轨迹         蓝色
COLOR_TARGET = 'c'  # 目标车辆

# 最靠近边界的一个车道是否通车
is_border_clear = True

# 停留时间
pause_seconds = 0.01  # 画布上移动小车的时间
sleep_seconds = 0.5  # 每隔 sleep_seconds 进入、移除一辆车

# 画布属性
# 画布大小 axis_num * axis_alpha
axis_num = 50
axis_alpha = 2.0
axis_width = 10  # (cons.axis_num * cons.axis_alpha) /10
axis_height = 10
axis_title = "car parking: axis from (0, 0)"
axis_xlable = "x"
axis_ylable = "y"

num = [10, 10]  # [num_right,num_up]  向右扩展的个数 向上扩展的个数
delta = [2, 2]  # 车位之间的间隔
park_space = [3, 3]  # 停车位的大小
alpha = 2  # 坐标轴的缩放大小，基线为50
alpha_car = 0.7  # 平板车占车位的大小

# 进出车的相隔时间
time_start = 6
time_end = 6 * 5

# 出入口
# pos_in = [[0, 0],[5, 0], [9, 0]]
# pos_out = [[0, 9], [5, 9], [9, 9]]
pos_in = [[5, 0]]
pos_out = [[5, 0]]  # 第一个元素表示中间位置的出口

reset_position = [5, 0]

# 重要性程度级别 importance_info
importance_level = 'importance_level'
importance_score_root = 4.0
importance_score_sub_root = 3.0
importance_score_leaf = 2.0
importance_score = 1.0
importance_info_rate = 1.0

# 同级别之间的重要性程度划分
importance_distance_info = 'importance_distance_info'
importance_distance = 1.0

# 节点信息 node_info
node_info = 'node_info'
node_root = 'root_node'
node_main_sub_root = 'main_sub_root_node'
node_sub_root = 'sub_root_node'
node_leaf = 'leaf_node'

node_level = "node_level"
node_father = "node_father"
node_child = "node_child"

# 位置车辆停放信息 无车 0 、有车 1 、有平板车 2 、无平板车 3 、轨迹中 4  occupied_info
occupied_info = 'occupied_info'
occupied_no_car = 'nc'
occupied_car = 'oc'
occupied_no_flatcar = 'nf'
occupied_flatcar = 'of'
occupied_other = 'trace'  # 其他状态，轨迹

# 时间代价
cost_time = 'cost_time'
cost_time_default = 1.0
cost_time_rate = 1.0

# 距离代价
cost_distance = 'cost_distance'
cost_distance_default = 1.0
cost_distance_rate = 1.0

# 能量代价
cost_energy = 'cost_energy'
cost_energy_down = 0.5  # 放车
cost_energy_up = 1.5  # 取车
cost_energy_move_without_car = 1.0  # 移车
cost_energy_move_with_car = 2.0  # 有车在平板车上
cost_energy_default = 1.0
cost_energy_rate = 1.0

# 得分
cost_total = 'cost_score'
cost_total_score = 1.0

# 进出队列
queue_in = 'queue_in'
queue_in_cost = 'queue_in_cost'
queue_in_importance = 'queue_in_importance'

# 故障信息
breakdown_info = 'breakdown_info'
breakdown_car_only = 'breakdown_car_only'  # 仅仅不能放车
breakdown_flatcar = 'breakdown_flatcar'  # 不能通过平板车，同时也就不能放车
breakdown_no = 'breakdown_no'  # 没有故障

queue_out = 'queue_out'

trace_pre = 'trace'  # 轨迹字典 key 的前缀
trace_suf = ''  # 轨迹字典 key 的后缀

occupied_file = 'occupied_noleaf2.pkl'
occupied_noleaf1 = 'occupied_noleaf1.pkl'
occupied_noleaf2 = 'occupied_noleaf2.pkl'
occupied_noleaf3 = 'occupied_noleaf3.pkl'
occupied_noleaf4 = 'occupied_noleaf4.pkl'
occupied_noleaf5 = 'occupied_noleaf5.pkl'
trace_file = 'trace.pkl'  # 保存的轨迹文件名
add = 'add'  # 添加路径 trace
remove = 'move'  # 移出路径 trace

# 模拟目标 移入、移出方式
in_out_queue = 'in_out_queue'  # 按照队列中的顺序进出车
in_out_handcraft = 'in_out_handcraft'  # 手动设定进出的位置
in_out_random = 'in_out_random'  # 随机进出车
in_out_trace = 'in_out_trace' # 根据已经设定好的路径选取下一个停放的车辆

# 移入方式 "queue", "handcraft"，"random"
# in_queue = 'queue'
# in_handcraft = 'handcraft'
# in_random = 'random'
# in_trace = 'trace'

# 移出车的策略
out_policy_one = 'out_policy_one'
out_policy_two = 'out_policy_two'
out_policy_three = 'out_policy_three'

# 标记是否移动过
moved = 'moved'
no_moved = 'no_moved'

occupied = 'occupied'
target = 'target'

# keys -- utils
position_key = 'position_%s_%s'
out_key = "out_%s_%s"
cost_total_key = "cost_total_%s_%s"

two_sub_root = 'two_sub_root'  # 出车策略中，如果构建的pairs中存在两个 sub root node
one_sub_root = 'one_sub_root'  # 出车策略中，如果构建的pairs中存在一个 sub root node

# 计算开销，是否使用重要性程度
use_important_level = False
